//分割平衡字符串
//在一个 平衡字符串 中，'L' 和 'R' 字符的数量是相同的。
// 给你一个平衡字符串 s，请你将它分割成尽可能多的平衡字符串。
// 注意：分割得到的每个字符串都必须是平衡字符串。
// 返回可以通过分割得到的平衡字符串的 最大数量 。

//法一：
class Solution {
    public int balancedStringSplit(String s) {
        int count = 0; //返回分割得到的字符串的数量
        int n = 0;  
        for(int i=0; i<s.length();i++){
            if(s.charAt(i)=='R'){
                n++;
            }
            if(s.charAt(i)=='L'){
                n--;
            }
            if(n==0){
                count++;
            }
        }
        return count;
    }
}


//法二：贪心算法
class Solution {
    public int balancedStringSplit(String s) {
        char[] arr = s.toCharArray();
        int ret = 0; //返回数量
        int n = 0; //计数
        int len = arr.length;
        for(int i = 0; i<len; ){
            int j = i+1;
            n = arr[i]=='L' ? 1 : -1;
            while(n!=0 && j<len){
                n += arr[j++]=='L'? 1 : -1; 
            }
            i = j;
            ret++;
        }
        return ret;
    }
}